package com.kobeliu.entity;

/**
 * AUTOX 周赛_1
 *
 * 街上有 n 栋房子整齐地排成一列，每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors ，其中 colors[i] 表示第  i 栋房子的颜色。
 *
 * 返回 两栋 颜色 不同 房子之间的 最大 距离。
 *
 * 第 i 栋房子和第 j 栋房子之间的距离是 abs(i - j) ，其中 abs(x) 是 x 的绝对值。
 *
 * 示例 1：
 *
 * 输入：colors = [1,1,1,6,1,1,1]
 * 输出：3
 * 解释：上图中，颜色 1 标识成蓝色，颜色 6 标识成红色。
 * 两栋颜色不同且距离最远的房子是房子 0 和房子 3 。
 * 房子 0 的颜色是颜色 1 ，房子 3 的颜色是颜色 6 。两栋房子之间的距离是 abs(0 - 3) = 3 。
 * 注意，房子 3 和房子 6 也可以产生最佳答案。
 */

public class Demo_49_zhousai_1 {

    public static void main(String[] args) {
        int[] colors = new int[]{9,9,9,9,18,9,9,9,9,18};
        System.out.println(maxDistance(colors));
    }


    public static int maxDistance(int[] colors) {

        int len = colors.length;
        int L = 0;
        int R = len-1;
        int maxL = 0;
        int maxR = 0;

        if(colors[L] != colors[R]) return len-1;

        while(R>0){
            if(colors[L]!=colors[R]){
                maxR = R-L;
                R=0;
            }
            R--;
        }
        R = len-1;
        while(L<len-1){
            if(colors[L]!=colors[R]){
                maxL = R-L;
                L=len;
            }
            L++;
        }
        return Math.max(maxL,maxR);
    }
}
